1. Field of the Invention
The present invention relates to data processing systems, and more particularly to data processing systems employing object oriented programming to construct programs for execution on a data processing system.
2. Prior Art
Object oriented programming systems provide means for creation and reuse of objects for the purpose of program generation, database management, graphical user interface generation and similar applications. To make most efficient use of object oriented programming, a variety of tools or utilities are required to overcome deficiencies in programming language and operating systems. More particularly, in the design and implementation of application program frameworks, there is a need to create object libraries and to extend well-known programming languages such as the C language to have object oriented capabilities. Further, applications should be designed and implemented so that they may be operating system independent and be able to be run on multiple diverse operating system platforms such as OS/2, AIX, UNIX or Windows. A reference text book which provides a description of Object Oriented Systems, including terminology and structure, is Object-Oriented Analysis and Design with Applications, second edition, by Grady Booch, published by Benjamin/Cummings Publishing Co., Inc. 1993. Reference to this text may be made for definition of terms related to Object-Oriented Systems.
In the prior art, there have been many articles published relating to object oriented programming and several patents which describe implementations of inventions related to object oriented programming where the patents deal primarily with database or file system management in a computer system.
U.S. Pat. No. 4,953,080 is an example of an object oriented system for file system management in a computer. The file system includes a plurality of application programs, a plurality of data files, a plurality of class data structures, and a plurality of object data structures. Each class data structure includes a reference to an application program within the plurality of application programs. Each object data structure includes a reference to a class data structure from the plurality of class data structures and a reference to at least one data file from the plurality of data files. The use of object data structures adds a layer between a user of the computer and data files. This allows for the computer to refer to an object data structure and associated access files using a tag which is inaccessible to the user. The user refers to an object based on the physical location of the object on the screen. The user may also give the object data structure a name, which is totally unconnected to the value of the tag. This allows a user to, for instance, give two objects in the same directory, the same name. Further, the file system includes a plurality of link data structures, each link data structure including a reference to a first object data structure in the plurality of object data structures which serves a parent object of the link, and including a reference to a second object data structure in the plurality of object data structures which serves as a child object of the link.
Although the patent generally describes an object management facility for a file management system in a computing system, the patent does not describe an object oriented system in accordance with the present invention in which an abstract action object class is created to allow other objects to have their behavior customized at run time under different triggering conditions for activation of the action.
U.S. Pat. No. 5,050,074 describes a system for facilitating coordination of activities by a plurality of actors with an object data base and state/action identification. The system according to the patent includes a plurality of objects each associated with a constituent, with each object including state information defining a state and constituent information containing information relating to a constituent. The system further includes tables to identify processing actions in connection with the various states of each object, state transitions for each object in connection with each action defined by the action definition table, and actors associated with each constituent. The system initially determines, in response to constituent information from an actor and the object access definition table, the association of the actor with respect to a constituent and selectively processes the object associated with the constituent as defined by the action definition table and modifies the state of the object as defined by the state transition definition table. In the system according to the present invention, the actions related to the various states of each object are kept as part of the state that belongs to that object. The action information is not stored in a global action definition table as in the prior art. This improves the overall response time of the system. The system described in U.S. Pat. No. 5,050,074 also includes a table to keep state transitions for each objects actions. In other words, the actions are limited to primitive state transitions. In the system according to the present invention, the actions can be defined through method calls, scripts, procedure calls, and action slot executions.
IBM Technical Disclosure Bulletin, Vol. 32, No. 4A, September 1989 at p. 182 includes an article entitled "Method for Direct Object Manipulation" which describes a method for implementing a protocol to facilitate and manage direct object manipulation between independently developed programs displayed on a computer terminal display. Direct object manipulation is described as the capability to select an object on the display screen and dynamically drag that object to another area on the screen and leave the object in the new location on the screen.
There are two primary forms of actions implied with direct object manipulation; the first is a direct repositioning of the object to another location on the screen, and the second is an action-object type of direct object manipulation where the object undergoing direct object manipulation is dragged over another object, the target object, initiating an action. Direct object manipulation provides a set of messages and functions to accomplish both forms of direct object manipulation and is used in the IBM OS/2 Presentation Manager program. As described above, there are two primary forms of actions implied with direct manipulations; direct repositioning, and a target object initiating an object. These are simple cases of actions and they are tailored to be used for direct manipulation. The system according to the present invention is not limited to just "a direct manipulation", it is the general purpose system that can be used to create compound objects with complex interactions. Furthermore, the action orientation described in the Technical Disclosure Bulletin article is not object oriented in the sense that the action information is kept as state variables in the source or target objects. The action information is not represented as a first class object. In the system according to the present invention, action objects are first class objects thus providing the advantages like extendibility and modularity.
U.S. Pat. No. 4,967,371 entitled "Method and Apparatus for Inference" describes a method of inference using frame based knowledge representation which enables the simultaneous realization of high accuracy and high speed in the process of inference. The method includes the steps of accompanying each slot with procedure information which indicates procedure for deriving the slot value of the slot from the other slot values, providing pointer information indicating the slots related to each other by the procedure indicated by the procedure information, accompanying each slot with sign information which indicates the validity of the slot value currently given, deriving the slot value in accordance with the procedure indicated by the procedure information when the slot value is missing and when the slot value is indicated by the accompanying sign information as invalid, changing the indication of the sign information accompanying the slots which are indicated by the pointer information as being related to the slot whose slot value is derived, and storing the derived slot value.
The patent deals with, among other things, slots in an expert system context and does not teach nor suggest the use of action slots for controlling execution of action objects in an object oriented system for application framework or interface generation according to the present invention.